// pages/subject/subject.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        list: [],
        queryData: {
            page: 1,
            pageSize: 10,
        },
        count: 0,
        loading: false, // 是否结束
        finished: false // 是否处于加载中
    },
    async initData() {
        this.setData({
            loading: true
        })
        try {
            // 1. 发起请求
            let {
                count,
                data
            } = await wx.$http.get("/topic/list", this.data.queryData)
            // 2. 追加数据到列表
            this.setData({
                count,
                list: [...this.data.list, ...data]
            })
            // 3. 关闭loading
            this.setData({
                loading: false
            })
            // 4. 判断是否结束
            if (this.data.list.length === this.data.count) {
                // 结束了设置finished为true
                this.setData({
                    finished: true
                })
            } else {
                // 没结束, 页码 + 1
                this.setData({
                    'queryData.page': this.data.queryData.page + 1
                })
            }
        } catch (error) {
            // 错误也要关闭
            this.setData({
                loading: false
            })
        }

    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        // 上一个页面传入这个页面的数据！
        console.log(options);
        console.log("subject-detail 页面生命周期onLoad---监听页面加载");
        this.initData()
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
        console.log("subject-detail页面生命周期onReady---监听页面初次渲染完成");
    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        // console.log("subject-detail页面生命周期onShow---监听页面显示");
        const tabBar = this.getTabBar()
        tabBar.setData({
            currentPath:"pages/subject/subject"
        })
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {
        console.log("subject-detail页面生命周期onHide---监听页面隐藏");
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {
        console.log("subject-detail 页面生命周期onUnload---监听页面隐藏");
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    async onPullDownRefresh() {
        console.log("监听用户下拉动作");
        // 1. 重置所有
        this.setData({
            queryData: {
                page: 1,
                size: 3
            },
            list: [],
            finished: false,
            loading: false
        })
        // 2. 重新获数据
        await this.initData()
        // 3. 关闭下拉刷新
        wx.stopPullDownRefresh()
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        console.log('页面上拉触底事件的处理函数');
        // 如果结束就跳出
        if (this.data.finished) return
        // 正在加载数据也要跳出
        if (this.data.loading) return
        // 数据继续请求
        this.initData()
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})